import os
from dotenv import load_dotenv

class Base:
    INDUSTRY_TYPES = [
        "农林牧渔",
        "食品饮料",
        "纺织服饰",
        "皮革鞋包",
        "妇婴用品",
        "美容美发",
        "礼品玩具及宠物用品",
        "钟表眼镜",
        "珠宝首饰",
        "生活用品",
        "婚庆用品",
        "酒店用品",
        "办公用品",
        "教育装备",
        "劳保用品",
        "文体娱乐",
        "健康养老",
        "医疗及制药设备",
        "药品及原料",
        "汽车",
        "自行车电动车摩托车",
        "航空航天",
        "船舶和轨道等交通",
        "光电",
        "计算机通信及电子设备",
        "仪表仪器",
        "冷暖设备",
        "泵阀管道",
        "五金工具",
        "工业机械",
        "工程机械及管材线材",
        "工程机械",
        "农业机械",
        "食品加工设备",
        "采矿及设备",
        "电力及新能源设备",
        "节能环保",
        "化工产品",
        "高新材料 / 技术",
        "其他设备 / 材料",
        "家电",
        "家具家居",
        "建筑建材",
        "物流仓储",
        "电商和交易会",
        "广告传播",
        "印刷包装",
        "公共安全",
        "连锁加盟",
        "综合类",
        "汽配及服务",
        "包装机械",
        "电力电工",
        "电梯",
        "其他"
    ]

    REGION_MAP = {
        # 亚洲
        '亚洲': {
            '中国': ['北京', '上海', '广州', '深圳', '成都', '重庆', '武汉', '南京', '杭州', '西安', '天津', '苏州', '厦门', '青岛', '大连', '宁波', '长沙', '郑州', '沈阳', '哈尔滨', '昆明', '南宁', '福州', '济南', '合肥', '长春', '石家庄', '太原', '南昌', '贵阳', '兰州', '海口', '乌鲁木齐', '呼和浩特', '银川', '西宁', '拉萨', '香港', '澳门', '台北', '高雄', '台中'],
            '日本': ['东京', '大阪', '名古屋', '横滨', '福冈', '札幌', '京都', '神户', '广岛', '仙台', '埼玉', '千叶', '静冈', '冈山', '新潟', '长崎', '冲绳', '奈良', '金泽', '函馆'],
            '韩国': ['首尔', '釜山', '大邱', '仁川', '光州', '大田', '蔚山', '水原', '城南', '龙仁', '世宗', '清州', '春川', '济州', '全州', '木浦', '安东', '庆州'],
            '新加坡': ['新加坡'],
            '马来西亚': ['吉隆坡', '槟城', '新山', '马六甲', '怡保', '亚庇', '古晋', '哥打基纳巴卢', '芙蓉', '关丹', '兰卡威', '槟岛'],
            '泰国': ['曼谷', '清迈', '普吉', '芭堤雅', '清莱', '华欣', '甲米', '孔敬', '乌汶', '素可泰', '大城', '合艾', '象岛'],
            '印度': ['新德里', '孟买', '班加罗尔', '海德拉巴', '加尔各答', '金奈', '艾哈迈达巴德', '浦那', '苏拉特', '斋浦尔', '勒克瑙', '坎普尔', '那格浦尔', '印多尔', '巴特那', '博帕尔', '卢迪亚纳', '阿格拉', '瓦拉纳西', '果阿'],
            '越南': ['河内', '胡志明市', '岘港', '海防', '芽庄', '大叻', '会安', '顺化', '芹苴', '藩切', '头顿', '下龙湾', '富国岛'],
            '菲律宾': ['马尼拉', '宿务', '达沃', '奎松', '碧瑶', '长滩岛', '巴拉望', '伊洛伊洛', '巴科洛德', '卡加延德奥罗', '三宝颜', '塔克洛班', '杜马格特'],
            '印度尼西亚': ['雅加达', '泗水', '万隆', '巴厘岛', '棉兰', '日惹', '望加锡', '三宝垄', '巴淡岛', '龙目岛', '巨港', '坤甸', '万鸦老', '梭罗'],
            '阿联酋': ['迪拜', '阿布扎比', '沙迦', '阿治曼', '富查伊拉', '哈伊马角', '乌姆盖万'],
            '沙特阿拉伯': ['利雅得', '吉达', '麦加', '麦地那', '达曼', '塔伊夫', '胡富夫', '布赖代', '延布', '吉赞'],
            '以色列': ['特拉维夫', '耶路撒冷', '海法', '贝尔谢巴', '内坦亚', '埃拉特', '里雄莱锡安', '霍隆', '阿什杜德', '比尔谢瓦'],
            '土耳其': ['伊斯坦布尔', '安卡拉', '伊兹密尔', '布尔萨', '安塔利亚', '阿达纳', '加济安泰普', '科尼亚', '梅尔辛', '代尼兹利', '特拉布宗', '埃迪尔内', '恰纳卡莱'],
            '卡塔尔': ['多哈', '沃克拉', '拉斯拉凡', '豪尔', '杜汉', '乌姆赛义德'],
            '伊朗': ['德黑兰', '马什哈德', '伊斯法罕', '设拉子', '大不里士', '库姆', '阿瓦士', '克尔曼', '拉什特', '哈马丹', '亚兹德', '布什尔'],
            '巴基斯坦': ['伊斯兰堡', '卡拉奇', '拉合尔', '白沙瓦', '奎达', '费萨拉巴德', '木尔坦', '海得拉巴', '拉瓦尔品第', '吉尔吉特'],
            '缅甸': ['仰光', '内比都', '曼德勒', '蒲甘', '勃固', '密支那', '腊戍', '东枝', '实兑', '毛淡棉'],
            '柬埔寨': ['金边', '暹粒', '西哈努克', '马德望', '磅湛', '贡布', '白马', '波贝', '磅同', '桔井'],
            '老挝': ['万象', '琅勃拉邦', '巴色', '沙湾拿吉', '他曲', '丰沙湾', '琅南塔', '川圹', '北汕', '沙拉湾'],
            '文莱': ['斯里巴加湾', '诗里亚', '都东', '马来奕', '邦阿'],
            '东帝汶': ['帝力', '包考', '维克克', '马纳图托', '苏艾', '阿伊纳罗', '利基卡', '萨梅', '欧库西'],
            '孟加拉国': ['达卡', '吉大港', '库尔纳', '拉杰沙希', '锡莱特', '巴里萨尔', '朗布尔', '科米拉', '迈门辛', '博格拉'],
            '斯里兰卡': ['科伦坡', '康提', '加勒', '努沃勒埃利耶', '尼甘布', '安努拉德普勒', '贾夫纳', '波隆纳鲁沃', '特林科马利', '汉班托塔'],
            '阿塞拜疆': ['巴库', '甘贾', '苏姆盖特', '明盖切维尔', '舍基', '连科兰', '纳希切万', '加巴拉', '沙马希', '库巴'],
            '哈萨克斯坦': ['努尔苏丹', '阿拉木图', '奇姆肯特', '卡拉干达', '阿克托别', '塔拉兹', '巴甫洛达尔', '乌斯季卡缅诺戈尔斯克', '塞梅', '阿特劳'],
            '乌兹别克斯坦': ['塔什干', '撒马尔罕', '纳曼干', '安集延', '布哈拉', '费尔干纳', '卡尔希', '乌尔根奇', '努库斯', '吉扎克'],
            '土库曼斯坦': ['阿什哈巴德', '土库曼巴希', '达绍古兹', '马雷', '巴尔坎纳巴德', '阿巴丹', '阿纳乌', '巴拉姆阿里', '塔希亚塔什', '塞尔达尔'],
            '蒙古': ['乌兰巴托', '额尔登特', '达尔汗', '乔巴山', '科布多', '巴彦洪格尔', '乌里雅苏台', '曼达勒戈壁', '扎门乌德', '苏赫巴托尔'],
            '阿曼': ['马斯喀特', '塞拉莱', '索哈尔', '尼兹瓦', '苏尔', '巴卡', '鲁斯塔克', '伊卜拉', '巴赫拉', '沙拉拉'],
            '伊拉克': ['巴格达', '巴士拉', '摩苏尔', '埃尔比勒', '苏莱曼尼亚', '纳杰夫', '卡尔巴拉', '基尔库克', '迪瓦尼亚', '纳西里耶'],
            '约旦': ['安曼', '扎尔卡', '伊尔比德', '亚喀巴', '马安', '杰拉什', '盐城', '卡拉克', '塔菲拉', '马德巴'],
            '巴林': ['麦纳麦', '里法', '穆哈拉格', '哈德', '西特拉', '伊萨城', '朱富尔', '阿拉德', '萨法', '巴尔巴尔']
        },

        # 欧洲（保持同样详细程度）
        '欧洲': {
            '德国': ['柏林', '慕尼黑', '法兰克福', '汉堡', '科隆', '斯图加特', '杜塞尔多夫', '多特蒙德', '埃森', '莱比锡', '不来梅', '德累斯顿', '汉诺威', '纽伦堡', '波恩', '弗赖堡', '罗斯托克', '基尔', '乌尔姆', '海德堡'],
            '法国': ['巴黎', '里昂', '马赛', '尼斯', '图卢兹', '南特', '斯特拉斯堡', '蒙彼利埃', '波尔多', '里尔', '雷恩', '勒阿弗尔', '格勒诺布尔', '第戎', '安纳西', '阿维尼翁', '戛纳', '圣马洛', '科尔马', '霞慕尼'],
            '英国': ['伦敦', '曼彻斯特', '伯明翰', '爱丁堡', '格拉斯哥', '利物浦', '利兹', '谢菲尔德', '布里斯托尔', '纽卡斯尔', '贝尔法斯特', '卡迪夫', '牛津', '剑桥', '约克', '巴斯', '布莱顿', '坎特伯雷', '因弗内斯', '斯特灵'],
            '意大利': ['罗马', '米兰', '佛罗伦萨', '威尼斯', '那不勒斯', '都灵', '博洛尼亚', '热那亚', '巴勒莫', '比萨', '维罗纳', '锡耶纳', '佩鲁贾', '阿马尔菲', '庞贝', '五渔村', '陶尔米纳', '圣雷莫', '科莫', '马泰拉'],
            '西班牙': ['马德里', '巴塞罗那', '瓦伦西亚', '塞维利亚', '萨拉戈萨', '马拉加', '毕尔巴鄂', '格拉纳达', '科尔多瓦', '托莱多', '萨拉曼卡', '圣塞瓦斯蒂安', '阿利坎特', '加的斯', '赫罗纳', '龙达', '伊维萨', '马略卡', '特内里费', '圣地亚哥-德孔波斯特拉'],
            '俄罗斯': ['莫斯科', '圣彼得堡', '喀山', '索契', '叶卡捷琳堡', '下诺夫哥罗德', '新西伯利亚', '伏尔加格勒', '克拉斯诺达尔', '顿河畔罗斯托夫', '乌法', '萨马拉', '鄂木斯克', '伊尔库茨克', '符拉迪沃斯托克', '雅库茨克', '摩尔曼斯克', '加里宁格勒', '大诺夫哥罗德', '苏兹达尔'],
            '荷兰': ['阿姆斯特丹', '鹿特丹', '海牙', '乌得勒支', '埃因霍温', '格罗宁根', '马斯特里赫特', '阿尔克马尔', '哈勒姆', '代尔夫特', '莱顿', '恩斯赫德', '阿纳姆', '布雷达', '多德雷赫特', '米德尔堡', '霍伦', '沃伦丹', '羊角村', '泰瑟尔岛'],
            '瑞士': ['苏黎世', '日内瓦', '巴塞尔', '伯尔尼', '洛桑', '卢塞恩', '因特拉肯', '蒙特勒', '采尔马特', '圣莫里茨', '达沃斯', '卢加诺', '洛伊克巴德', '阿彭策尔', '格施塔德', '施皮茨', '布里恩茨', '劳特布龙嫩', '格林德尔瓦尔德', '米伦'],
            '比利时': ['布鲁塞尔', '安特卫普', '根特', '布鲁日', '列日', '那慕尔', '鲁汶', '梅赫伦', '奥斯坦德', '斯帕', '迪南', '伊珀尔', '哈瑟尔特', '蒙斯', '阿尔隆', '通厄伦', '科特赖克', '韦尔维耶', '蒂嫩', '马尔梅迪'],
            '葡萄牙': ['里斯本', '波尔图', '科英布拉', '布拉加', '法鲁', '吉马良斯', '阿威罗', '埃武拉', '卡斯凯什', '辛特拉', '奥比都斯', '马德拉', '亚速尔', '拉各斯', '阿尔布费拉', '维拉摩拉', '塔维拉', '塞图巴尔', '丰沙尔', '蓬塔德尔加达'],
            '瑞典': ['斯德哥尔摩', '哥德堡', '马尔默', '乌普萨拉', '隆德', '厄勒布鲁', '韦斯特罗斯', '林雪平', '赫尔辛堡', '卡尔斯塔德', '于默奥', '基律纳', '吕勒奥', '谢莱夫特奥', '克里斯蒂安斯塔德', '哈尔姆斯塔德', '卡尔斯克鲁纳', '尼雪平', '阿尔博加', '恩舍尔兹维克'],
            '挪威': ['奥斯陆', '卑尔根', '特隆赫姆', '斯塔万格', '特罗姆瑟', '奥勒松', '克里斯蒂安桑', '德拉门', '腓特烈斯塔', '桑讷菲尤尔', '莫斯', '利勒哈默尔', '盖朗厄尔', '弗洛姆', '斯沃尔韦尔', '纳尔维克', '博德', '哈默菲斯特', '希尔克内斯', '朗伊尔城'],
            '丹麦': ['哥本哈根', '奥胡斯', '欧登塞', '奥尔堡', '埃斯比约', '兰讷斯', '科灵', '赫尔辛格', '罗斯基勒', '斯文堡', '索勒', '霍森斯', '腓特烈西亚', '瓦埃勒', '锡尔克堡', '霍布罗', '斯卡恩', '比隆', '格雷诺', '马里博'],
            '芬兰': ['赫尔辛基', '坦佩雷', '图尔库', '奥卢', '拉赫蒂', '波里', '库奥皮奥', '于韦斯屈莱', '罗瓦涅米', '萨翁林纳', '米凯利', '科特卡', '伊马特拉', '汉科', '卡亚尼', '塞伊奈约基', '基蒂莱', '列维', '萨利色尔卡', '伊纳里'],
            '奥地利': ['维也纳', '萨尔茨堡', '格拉茨', '因斯布鲁克', '林茨', '克拉根福', '菲拉赫', '圣珀尔滕', '巴登', '基茨比厄尔', '哈尔施塔特', '梅尔克', '杜恩斯泰因', '圣沃尔夫冈', '滨湖采尔', '塞费尔德', '伊施格尔', '奥伯古格尔', '圣安东', '莱希'],
            '希腊': ['雅典', '塞萨洛尼基', '帕特雷', '伊拉克利翁', '罗得', '圣托里尼', '米克诺斯', '科孚', '纳夫普利翁', '德尔斐', '奥林匹亚', '迈泰奥拉', '哈尔基季基', '扎金索斯', '凯法利尼亚', '斯巴达', '沃洛斯', '特里卡拉', '约阿尼纳', '亚历山德鲁波利斯'],
            '波兰': ['华沙', '克拉科夫', '罗兹', '弗罗茨瓦夫', '波兹南', '格但斯克', '什切青', '比得哥什', '卢布林', '卡托维兹', '热舒夫', '奥尔什丁', '托伦', '扎科帕内', '马尔堡', '奥斯威辛', '维利奇卡', '琴斯托霍瓦', '海乌姆', '普沃茨克'],
            '乌克兰': ['基辅', '敖德萨', '哈尔科夫', '第聂伯罗', '利沃夫', '扎波罗热', '顿涅茨克', '卢甘斯克', '尼古拉耶夫', '赫尔松', '切尔尼戈夫', '文尼察', '日托米尔', '乌日霍罗德', '伊万诺-弗兰科夫斯克', '切尔诺夫策', '苏梅', '罗夫诺', '捷尔诺波尔', '梅利托波尔'],
            '匈牙利': ['布达佩斯', '德布勒森', '塞格德', '米什科尔茨', '佩奇', '杰尔', '尼赖吉哈佐', '凯奇凯梅特', '塞克什白堡', '索尔诺克', '索普朗', '埃格尔', '贝凯什乔鲍', '维斯普雷姆', '佐洛', '卡波什堡', '豪伊杜索博斯洛', '埃斯泰尔戈姆', '巴拉顿湖', '托考伊'],
            '保加利亚': ['索非亚', '普罗夫迪夫', '瓦尔纳', '布尔加斯', '鲁塞', '斯塔拉扎戈拉', '普列文', '斯利文', '多布里奇', '舒门', '佩尔尼克', '哈斯科沃', '雅姆博尔', '帕扎尔吉克', '布拉戈耶夫格勒', '维丁', '加布罗沃', '卡赞勒克', '阿塞诺夫格勒', '卡尔洛沃'],
            '捷克': ['布拉格', '布尔诺', '奥斯特拉发', '比尔森', '利贝雷茨', '奥洛穆茨', '乌斯季', '赫拉德茨-克拉洛韦', '切斯克-布杰约维采', '兹林', '卡罗维发利', '帕尔杜比采', '哈维热夫', '克拉德诺', '弗里德克-米斯泰克', '吉赫拉瓦', '捷普利采', '卡尔维纳', '莫斯特', '奥帕瓦'],
            '罗马尼亚': ['布加勒斯特', '克卢日-纳波卡', '蒂米什瓦拉', '雅西', '康斯坦察', '克拉约瓦', '加拉茨', '布拉索夫', '普洛耶什蒂', '奥拉迪亚', '布勒伊拉', '阿拉德', '皮特什蒂', '锡比乌', '巴克乌', '特尔古穆列什', '博托沙尼', '萨图马雷', '布泽乌', '德罗贝塔-塞维林堡'],
            '克罗地亚': ['萨格勒布', '斯普利特', '里耶卡', '奥西耶克', '扎达尔', '普拉', '杜布罗夫尼克', '瓦拉日丁', '希贝尼克', '卡尔洛瓦茨', '武科瓦尔', '波雷奇', '罗维尼', '马卡尔斯卡', '奥帕蒂亚', '特罗吉尔', '普利特维采', '克尔克岛', '赫瓦尔岛', '布拉奇岛'],
            '阿尔巴尼亚': ['地拉那', '都拉斯', '爱尔巴桑', '斯库台', '科尔察', '佛罗拉', '贝拉特', '吉诺卡斯特', '费里', '卢什涅', '萨兰达', '波格拉德茨', '培拉特', '地拉那', '都拉斯', '爱尔巴桑', '斯库台', '科尔察', '佛罗拉', '贝拉特'],
            '格鲁吉亚': ['第比利斯', '巴统', '库塔伊西', '鲁斯塔维', '戈里', '祖格迪迪', '波季', '特拉维', '姆茨赫塔', '特拉维', '阿哈尔齐赫', '泰拉维', '博尔若米', '科布莱蒂', '阿姆布罗劳里', '西格纳吉', '祖格迪迪', '波季', '特拉维', '姆茨赫塔']
        },

        # 北美洲（保持同样详细程度）
        '北美洲': {
            '美国': ['纽约', '洛杉矶', '芝加哥', '休斯顿', '旧金山', '拉斯维加斯', '华盛顿', '迈阿密', '波士顿', '西雅图', '达拉斯', '费城', '亚特兰大', '凤凰城', '丹佛', '底特律', '纳什维尔', '新奥尔良', '奥斯汀', '盐湖城', '波特兰', '圣迭戈', '萨克拉门托', '檀香山', '安克雷奇', '奥兰多', '圣安东尼奥', '塔尔萨', '阿尔伯克基', '伯明翰', '小石城'],
            '加拿大': ['多伦多', '温哥华', '蒙特利尔', '渥太华', '卡尔加里', '埃德蒙顿', '魁北克', '温尼伯', '哈利法克斯', '维多利亚', '萨斯卡通', '里贾纳', '圣约翰斯', '黄刀镇', '怀特霍斯', '伊魁特', '班夫', '贾斯珀', '惠斯勒', '尼亚加拉瀑布城'],
            '墨西哥': ['墨西哥城', '瓜达拉哈拉', '蒙特雷', '普埃布拉', '蒂华纳', '坎昆', '梅里达', '阿卡普尔科', '圣米格尔德阿连德', '瓦哈卡', '瓜纳华托', '莫雷利亚', '克雷塔罗', '韦拉克鲁斯', '马萨特兰', '洛斯卡沃斯', '奇瓦瓦', '杜兰戈', '埃莫西约', '托卢卡'],
            '古巴': ['哈瓦那', '圣地亚哥', '巴拉德罗', '特立尼达', '西恩富戈斯', '卡马圭', '奥尔金', '马坦萨斯', '圣克拉拉', '关塔那摩', '巴亚莫', '莫龙', '比尼亚莱斯', '吉巴拉', '曼萨尼约', '圣斯皮里图斯', '科科岛', '青年岛', '卡约科科', '卡约圣玛丽亚'],
            '巴拿马': ['巴拿马城', '科隆', '戴维', '博卡斯德尔托罗', '圣地亚哥', '奇里基', '佩诺诺梅', '拉乔雷拉', '圣卡塔利娜', '孔塔多拉岛', '珍珠群岛', '圣布拉斯群岛', '博克特', '埃尔巴耶', '佩达西', '阿瓜杜尔塞', '圣费利克斯', '雷梅迪奥斯', '托莱', '阿尔米兰特'],
            '哥斯达黎加': ['圣何塞', '利蒙', '阿拉胡埃拉', '卡塔戈', '埃雷迪亚', '蓬塔雷纳斯', '克波斯', '尼科亚', '圣拉蒙', '图里亚尔瓦', '萨摩拉', '帕尔马雷斯', '奥罗西', '圣维托', '新阿雷纳尔', '拉福图纳', '蒙特维德', '塔马林多', '诺萨拉', '托尔图格罗'],
            '危地马拉': ['危地马拉城', '安提瓜', '弗洛雷斯', '克萨尔特南戈', '埃斯昆特拉', '奇奇卡斯特南戈', '巴里奥斯港', '萨卡帕', '雷塔卢莱乌', '科万', '圣马科斯', '韦韦特南戈', '奇基穆拉', '哈拉帕', '佩滕', '萨卡佩克斯', '圣罗莎', '索洛拉', '托托尼卡潘', '萨卡特佩克斯'],
            '洪都拉斯': ['特古西加尔巴', '圣佩德罗苏拉', '拉塞瓦', '科尔特斯港', '科马亚瓜', '乔卢特卡', '奥兰乔', '约罗', '科潘', '格拉西亚斯', '乌蒂拉', '罗阿坦', '特鲁希略', '科马亚瓜', '丹利', '圣洛伦索', '纳考梅', '埃尔普罗格雷索', '约罗', '奥莫阿'],
            '尼加拉瓜': ['马那瓜', '格拉纳达', '莱昂', '马萨亚', '奇南德加', '埃斯特利', '布卢菲尔兹', '圣胡安河', '奥梅特佩', '圣胡安德尔苏尔', '希诺特佩', '里瓦斯', '马塔加尔帕', '博阿科', '卡贝萨斯港', '埃尔拉马', '索莫托', '圣卡洛斯', '埃尔卡斯蒂略', '珍珠礁'],
            '萨尔瓦多': ['圣萨尔瓦多', '圣安娜', '圣米格尔', '松索纳特', '阿瓦查潘', '拉利伯塔德', '乌苏卢坦', '圣维森特', '查拉特南戈', '库斯卡特兰', '拉巴斯', '卡瓦尼亚斯', '莫拉桑', '圣伊尔德丰索', '梅塔潘', '圣罗莎德利马', '埃尔特里温福', '阿波帕', '索亚潘戈', '伊洛潘戈'],
            '牙买加': ['金斯敦', '蒙特哥贝', '奥乔里奥斯', '内格里尔', '安东尼奥港', '曼德维尔', '法尔茅斯', '圣安娜湾', '黑河', '莫兰特贝', '圣托马斯', '克拉伦登', '波特兰', '圣玛丽', '圣凯瑟琳', '圣伊丽莎白', '圣詹姆斯', '特里洛尼', '汉诺威', '西摩兰'],
            '海地': ['太子港', '海地角', '戈纳伊夫', '莱凯', '和平港', '雅克梅勒', '圣马克', '佩蒂翁维尔', '托尔蒂岛', '热雷米', '米拉瓜纳', '昂萨利', '圣拉斐尔', '圣米歇尔', '蒂布龙', '大湾', '阿坎', '博纳贝', '费里耶', '阿蒂博尼特'],
            '多米尼加': ['圣多明各', '圣地亚哥', '拉罗马纳', '圣佩德罗德马科里斯', '普拉塔港', '圣克里斯托瓦尔', '圣弗朗西斯科德马科里斯', '康塞普西翁德拉维加', '巴尼', '莫卡', '阿苏阿', '巴拉奥纳', '圣胡安', '伊圭', '杜阿尔特', '佩拉维亚', '萨尔塞多', '玛丽亚特立尼达桑切斯', '蒙特克里斯蒂', '佩德纳莱斯'],
            '巴哈马': ['拿骚', '弗里波特', '马什港', '安德罗斯', '伊柳塞拉', '埃克苏马', '长岛', '卡特岛', '阿巴科', '比米尼', '哈伯岛', '圣萨尔瓦多岛', '拉姆岛', '桑德罗斯', '埃留特拉', '大马镫礁', '小马镫礁', '大伊纳瓜', '小伊纳瓜', '猫岛'],
            '巴巴多斯': ['布里奇敦', '斯佩茨敦', '霍尔敦', '奥伊斯廷', '克拉伦登', '圣迈克尔', '圣詹姆斯', '圣彼得', '圣安德鲁', '圣约瑟夫', '圣约翰', '圣乔治', '圣菲利普', '圣露西', '圣托马斯', '圣约瑟夫', '圣安德鲁', '圣詹姆斯', '圣彼得', '圣迈克尔'],
            '特立尼达和多巴哥': ['西班牙港', '圣费尔南多', '查瓜纳斯', '阿里马', '库瓦', '塔卡里瓜', '德贝', '马亚罗', '莫鲁加', '普林斯敦', '圣胡安', '圣约瑟夫', '圣克鲁斯', '圣奥古斯丁', '圣詹姆斯', '圣克莱尔', '圣安娜', '圣玛丽', '圣约瑟夫', '圣克鲁斯']
        },

        # 南美洲（保持同样详细程度）
        '南美洲': {
            '巴西': ['圣保罗', '里约热内卢', '巴西利亚', '萨尔瓦多', '福塔莱萨', '贝洛奥里藏特', '马瑙斯', '库里蒂巴', '累西腓', '阿雷格里港', '戈亚尼亚', '坎皮纳斯', '圣路易斯', '纳塔尔', '特雷西纳', '若昂佩索阿', '弗洛里亚诺波利斯', '大坎普', '维多利亚', '库亚巴', '里奥布兰科'],
            '阿根廷': ['布宜诺斯艾利斯', '科尔多瓦', '罗萨里奥', '门多萨', '圣米格尔德图库曼', '拉普拉塔', '马德普拉塔', '萨尔塔', '圣胡安', '圣路易斯', '内乌肯', '巴里洛切', '乌斯怀亚', '埃尔卡拉法特', '伊瓜苏港', '圣卡洛斯德巴里洛切', '圣马丁德洛斯安第斯', '特雷利乌', '里奥加耶戈斯', '科莫多罗里瓦达维亚'],
            '智利': ['圣地亚哥', '瓦尔帕莱索', '康塞普西翁', '拉塞雷纳', '安托法加斯塔', '伊基克', '蓬塔阿雷纳斯', '特木科', '瓦尔迪维亚', '奥索尔诺', '奇廉', '科金博', '洛斯安第斯', '圣安东尼奥', '塔尔卡', '库里科', '利纳雷斯', '兰卡瓜', '圣费尔南多', '卡斯特罗'],
            '哥伦比亚': ['波哥大', '麦德林', '卡利', '巴兰基亚', '卡塔赫纳', '布卡拉曼加', '库库塔', '圣玛尔塔', '伊瓦格', '马尼萨莱斯', '佩雷拉', '阿美尼亚城', '蒙特里亚', '比亚维森西奥', '帕斯托', '通哈', '索加莫索', '圣安德烈斯', '莱蒂西亚', '米图'],
            '秘鲁': ['利马', '库斯科', '阿雷基帕', '特鲁希略', '奇克拉约', '皮乌拉', '伊基托斯', '塔克纳', '普诺', '胡利亚卡', '瓦努科', '卡哈马卡', '万卡约', '阿亚库乔', '钦博特', '伊卡', '莫克瓜', '塔拉波托', '马尔多纳多港', '查查波亚斯'],
            '厄瓜多尔': ['基多', '瓜亚基尔', '昆卡', '圣多明各', '马查拉', '洛哈', '波托维耶霍', '曼塔', '埃斯梅拉达斯', '里奥班巴', '伊瓦拉', '通古拉瓦', '阿塔卡梅斯', '巴诺斯', '奥塔瓦洛', '蒙特克里斯蒂', '普约', '萨利纳斯', '圣洛伦索', '新罗卡堡'],
            '委内瑞拉': ['加拉加斯', '马拉开波', '瓦伦西亚', '巴塞罗那', '梅里达', '巴基西梅托', '圣克里斯托瓦尔', '库马纳', '科罗', '拉瓜伊拉', '卡贝略港', '圭亚那城', '圣费尔南多德阿普雷', '图库皮塔', '埃尔蒂格雷', '拉克鲁斯港', '圣卡洛斯', '圣胡安德洛斯莫罗斯', '圣费利佩', '特鲁希略'],
            '玻利维亚': ['拉巴斯', '苏克雷', '圣克鲁斯', '科恰班巴', '奥鲁罗', '波托西', '塔里哈', '特立尼达', '科维哈', '维利亚宗', '里贝拉尔塔', '瓜亚拉梅林', '圣伊格纳西奥德贝拉斯科', '圣何塞德奇基托斯', '圣博尔哈', '罗伯雷', '亚奎瓦', '卡米里', '蒙特罗', '瓦尔内斯'],
            '巴拉圭': ['亚松森', '东方市', '恩卡纳西翁', '康塞普西翁', '佩德罗胡安卡瓦列罗', '维拉里卡', '费尔南多德拉莫拉', '兰巴雷', '圣洛伦索', '卡库佩', '阿耶斯总统市', '埃斯特城', '皮拉尔', '佩德罗胡安卡瓦列罗', '圣胡安包蒂斯塔', '圣伊格纳西奥', '圣佩德罗', '贝尔霍恩总统城', '卡门德帕拉纳里', '恩卡纳西翁'],
            '乌拉圭': ['蒙得维的亚', '萨尔托', '派桑杜', '拉斯彼德拉斯', '里韦拉', '梅洛', '马尔多纳多', '罗恰', '弗赖本托斯', '特立尼达', '梅塞德斯', '米纳斯', '卡内洛内斯', '圣何塞', '杜拉斯诺', '佛罗里达', '三十三人城', '塔夸伦博', '阿蒂加斯', '新帕尔米拉'],
            '圭亚那': ['乔治敦', '林登', '新阿姆斯特丹', '巴蒂卡', '马巴鲁马', '马修斯岭', '安娜女王村', '罗斯霍尔', '斯凯尔顿', '巴雷蒂', '奥代', '马海卡', '夸夸尼', '莱瑟姆', '马迪亚', '波塔罗', '伊图尼', '卡拉苏尼', '奥里迪卡', '查里蒂'],
            '苏里南': ['帕拉马里博', '新尼克里', '蒙戈', '阿尔比纳', '布朗斯韦格', '瓦尼卡', '尼克里', '科罗尼', '萨拉马卡', '科默韦讷', '帕拉', '帕拉南', '马罗韦讷', '西帕利维尼', '布罗科蓬多', '科维尼', '阿福巴卡', '瓦赫宁根', '格罗宁根', '奥涅弗瓦赫特'],
            '法属圭亚那': ['卡宴', '库鲁', '圣洛朗杜马罗尼', '雷米雷蒙日', '马纳', '圣乔治', '鲁拉', '伊拉库博', '圣埃利', '奥亚波基', '雷吉纳', '卡瓦', '苏里姆', '帕帕伊斯顿', '特雷斯', '圣让杜马罗尼', '蒙西内里', '马图里', '圣保罗', '大桑蒂']
        },

        # 非洲（保持同样详细程度）
        '非洲': {
            '南非': ['约翰内斯堡', '开普敦', '德班', '比勒陀利亚', '伊丽莎白港', '布隆方丹', '东伦敦', '金伯利', '波罗克瓦尼', '内尔斯普雷特', '姆邦贝拉', '乔治', '克尼斯纳', '莫塞尔湾', '赫曼努斯', '圣卢西亚', '乌姆兰加', '太阳城', '克鲁格国家公园', '桌山'],
            '埃及': ['开罗', '亚历山大', '卢克索', '阿斯旺', '沙姆沙伊赫', '胡尔加达', '吉萨', '塞得港', '苏伊士', '伊斯梅利亚', '达米埃塔', '曼苏拉', '坦塔', '宰加济格', '艾斯尤特', '基纳', '索哈杰', '阿布辛贝', '法尤姆', '西奈山'],
            '摩洛哥': ['卡萨布兰卡', '马拉喀什', '拉巴特', '非斯', '丹吉尔', '梅克内斯', '乌季达', '阿加迪尔', '得土安', '萨菲', '塔扎', '胡里卜盖', '盖勒敏', '瓦尔扎扎特', '伊夫兰', '索维拉', '舍夫沙万', '阿西拉', '梅尔祖卡', '达赫拉'],
            '肯尼亚': ['内罗毕', '蒙巴萨', '基苏木', '纳库鲁', '埃尔多雷特', '马林迪', '拉穆', '马查科斯', '梅鲁', '尼耶利', '基塔莱', '卡卡梅加', '加里萨', '纳纽基', '纳罗克', '锡卡', '瓦辛吉舒', '马萨比特', '洛德瓦尔', '安博塞利'],
            '尼日利亚': ['拉各斯', '阿布贾', '卡诺', '伊巴丹', '哈科特港', '贝宁城', '迈杜古里', '扎里亚', '阿巴', '乔斯', '伊洛林', '奥约', '阿库雷', '奥绍博', '卡齐纳', '奥尼查', '卡拉巴尔', '乌约', '阿萨巴', '伊凯贾'],
            '埃塞俄比亚': ['亚的斯亚贝巴', '德雷达瓦', '贡德尔', '巴赫达尔', '哈勒尔', '季马', '阿瓦萨', '内格默特', '德西', '纳兹雷特', '阿尔巴门奇', '默克莱', '阿索萨', '甘贝拉', '吉马', '德布雷马科斯', '德布雷西纳', '德布雷塔博尔', '德布雷伯尔汉', '德布雷马科斯'],
            '坦桑尼亚': ['达累斯萨拉姆', '阿鲁沙', '姆万扎', '多多马', '桑给巴尔', '姆贝亚', '莫罗戈罗', '坦噶', '塔波拉', '辛吉达', '姆特瓦拉', '基戈马', '松盖阿', '姆潘达', '林迪', '科阿', '姆巴兰博', '姆库兰加', '姆潘达', '姆库兰加'],
            '阿尔及利亚': ['阿尔及尔', '奥兰', '君士坦丁', '安纳巴', '布利达', '巴特纳', '杰勒法', '塞提夫', '西迪贝勒阿巴斯', '提济乌祖', '贝贾亚', '特莱姆森', '瓦尔格拉', '艾因泰穆尚特', '盖尔达耶', '塔曼拉塞特', '阿德拉尔', '因萨拉赫', '廷杜夫', '贝沙尔'],
            '安哥拉': ['罗安达', '万博', '洛比托', '本格拉', '卢班戈', '纳米贝', '索约', '卡宾达', '马兰热', '威热', '梅农盖', '库内内', '莫希科', '比耶', '北宽扎', '南宽扎', '北隆达', '南隆达', '马兰热', '威热'],
            '加纳': ['阿克拉', '库马西', '塔马利', '海岸角', '特马', '塞康第', '科福里杜亚', '奥布阿西', '特马', '海岸角', '霍城', '阿散蒂', '东部', '西部', '中部', '北部', '沃尔特', '大阿克拉', '布朗阿哈福', '上东部'],
            '科特迪瓦': ['阿比让', '亚穆苏克罗', '布瓦凯', '圣佩德罗', '达洛亚', '科霍戈', '马恩', '奥迭内', '邦杜库', '加尼奥阿', '布纳', '达布', '大拉乌', '萨桑德拉', '塔布', '图莫迪', '费尔凯塞杜古', '丁博克罗', '阿博伊索', '阿博维尔'],
            '喀麦隆': ['雅温得', '杜阿拉', '加鲁阿', '巴门达', '马鲁阿', '恩冈代雷', '巴富萨姆', '丰班', '林贝', '克里比', '埃博洛瓦', '昆巴', '贝尔图阿', '姆巴尔马尤', '巴图里', '蒙戈', '蒂科', '阿邦姆班', '巴门金', '丰班'],
            '刚果(金)': ['金沙萨', '卢本巴希', '姆布吉马伊', '卡南加', '基桑加尼', '布卡武', '戈马', '马塔迪', '科卢韦齐', '基奎特', '利卡西', '卡南加', '姆班达卡', '基桑加尼', '布卡武', '戈马', '马塔迪', '科卢韦齐', '基奎特', '利卡西'],
            '刚果(布)': ['布拉柴维尔', '黑角', '多利西', '恩卡伊', '奥约', '卢博莫', '韦索', '莫森乔', '甘博马', '锡比提', '姆菲卢', '金卡拉', '马库阿', '奥旺多', '凯莱', '莫森乔', '甘博马', '锡比提', '姆菲卢', '金卡拉'],
            '乌干达': ['坎帕拉', '恩德培', '金贾', '姆巴莱', '马萨卡', '姆巴拉拉', '古卢', '利拉', '阿鲁阿', '卡巴莱', '卡塞塞', '姆皮吉', '霍伊马', '卡巴罗莱', '卡姆文盖', '卡巴莱', '卡塞塞', '姆皮吉', '霍伊马', '卡巴罗莱'],
            '赞比亚': ['卢萨卡', '恩多拉', '基特韦', '卡布韦', '钦戈拉', '利文斯顿', '奇帕塔', '卡萨马', '姆巴拉', '芒古', '索卢韦齐', '姆富韦', '奇隆杜', '姆温希', '卡万布瓦', '塞伦杰', '奇帕塔', '卡萨马', '姆巴拉', '芒古'],
            '津巴布韦': ['哈拉雷', '布拉瓦约', '奇通圭扎', '穆塔雷', '奎鲁', '卡多马', '马斯温戈', '奇诺伊', '宾杜拉', '维多利亚瀑布城', '卡里巴', '奇雷济', '圭鲁', '奇平加', '穆托科', '奇诺伊', '宾杜拉', '维多利亚瀑布城', '卡里巴', '奇雷济'],
            '塞内加尔': ['达喀尔', '捷斯', '圣路易', '考拉克', '济金绍尔', '久尔贝勒', '图巴', '姆布尔', '法蒂克', '科尔达', '坦巴昆达', '凯杜古', '马塔姆', '卢加', '塞迪乌', '波多尔', '凯内巴', '巴克尔', '戈雷岛', '尼奥科洛科巴'],
            '突尼斯': ['突尼斯', '斯法克斯', '苏塞', '凯鲁万', '比塞大', '加贝斯', '阿利亚纳', '纳布勒', '塔塔温', '梅德宁', '本阿鲁斯', '马赫迪耶', '莫纳斯提尔', '坚杜拜', '卡塞林', '西迪布济德', '加夫萨', '托泽尔', '塔巴卡', '杰尔巴岛'],
            '卢旺达': ['基加利', '布塔雷', '吉塞尼', '鲁亨盖里', '尼亚加塔雷', '基布耶', '恩扬扎', '鲁林多', '恩戈马', '鲁瓦马加纳'],
            '加蓬': ['利伯维尔', '让蒂尔港', '弗朗斯维尔', '奥耶姆', '穆伊拉', '莫安达', '兰巴雷内', '泰克', '马科库', '坎戈']
        },

        # 大洋洲（保持同样详细程度）
        '大洋洲': {
            '澳大利亚': ['悉尼', '墨尔本', '布里斯班', '珀斯', '阿德莱德', '黄金海岸', '堪培拉', '纽卡斯尔', '伍伦贡', '霍巴特', '达尔文', '凯恩斯', '汤斯维尔', '阳光海岸', '吉朗', '朗塞斯顿', '奥尔伯里', '巴拉瑞特', '班伯里', '格拉德斯通', '麦凯'],
            '新西兰': ['奥克兰', '惠灵顿', '基督城', '但尼丁', '汉密尔顿', '陶朗加', '北帕默斯顿', '新普利茅斯', '罗托鲁阿', '旺阿雷', '内皮尔', '黑斯廷斯', '尼尔森', '因弗卡吉尔', '皇后镇', '瓦纳卡', '蒂阿瑙', '凯库拉', '皮克顿', '格雷茅斯'],
            '斐济': ['苏瓦', '楠迪', '劳托卡', '萨武萨武', '莱武卡', '辛加托卡', '科罗莱武', '塔韦乌尼', '瓦图科拉', '纳迪', '萨武萨武', '莱武卡', '辛加托卡', '科罗莱武', '塔韦乌尼', '瓦图科拉', '纳迪', '萨武萨武', '莱武卡', '辛加托卡'],
            '巴布亚新几内亚': ['莫尔兹比港', '莱城', '阿洛陶', '芒特哈根', '韦瓦克', '马当', '戈罗卡', '金贝', '科科波', '阿内瓦湾', '凯里马', '达鲁', '基永加', '瓦尼莫', '塔里', '波蓬德塔', '门迪', '布卡', '基埃塔', '洛伦高'],
            '萨摩亚': ['阿皮亚', '萨莱伊洛阿', '法雷奥洛', '穆利法努阿', '萨图帕伊泰阿', '瓦伊泰莱', '萨法图', '莱乌卡', '福加托伊', '萨莱阿乌拉', '萨图伊阿法', '法加洛阿', '萨马卢', '萨法图', '莱乌卡', '福加托伊', '萨莱阿乌拉', '萨图伊阿法', '法加洛阿', '萨马卢'],
            '汤加': ['努库阿洛法', '内亚富', '哈派', '瓦瓦乌', '埃瓦', '纽阿托普塔普', '纽阿斯', '纽阿福欧', '纽阿托普塔普', '纽阿斯', '纽阿福欧', '纽阿托普塔普', '纽阿斯', '纽阿福欧', '纽阿托普塔普', '纽阿斯', '纽阿福欧', '纽阿托普塔普', '纽阿斯', '纽阿福欧'],
            '所罗门群岛': ['霍尼亚拉', '吉佐', '奥基', '基拉基拉', '图拉吉', '阿基', '马莱塔', '伦内尔', '圣克鲁斯', '舒瓦瑟尔', '圣伊莎贝尔', '舒瓦瑟尔', '圣伊莎贝尔', '舒瓦瑟尔', '圣伊莎贝尔', '舒瓦瑟尔', '圣伊莎贝尔', '舒瓦瑟尔', '圣伊莎贝尔', '舒瓦瑟尔', '圣伊莎贝尔'],
            '瓦努阿图': ['维拉港', '卢甘维尔', '桑托', '塔纳', '埃法特', '马勒库拉', '安布里姆', '彭特科斯特', '埃罗芒阿', '托尔巴', '马洛', '圣埃斯皮里图', '马勒库拉', '安布里姆', '彭特科斯特', '埃罗芒阿', '托尔巴', '马洛', '圣埃斯皮里图', '马勒库拉', '安布里姆'],
            '密克罗尼西亚': ['帕利基尔', '科洛尼亚', '韦诺', '雅浦', '楚克', '波纳佩', '科斯雷', '雅浦', '楚克', '波纳佩', '科斯雷', '雅浦', '楚克', '波纳佩', '科斯雷', '雅浦', '楚克', '波纳佩', '科斯雷', '雅浦'],
            '马绍尔群岛': ['马朱罗', '埃贝耶', '贾卢伊特', '沃杰', '利基普', '乌贾', '埃林拉普拉普', '纳穆', '艾卢克', '梅吉特', '阿尔诺', '马洛埃拉普', '乌蒂里克', '比基尼', '埃内韦塔克', '朗格拉普', '乌贾', '埃林拉普拉普', '纳穆', '艾卢克'],
            '帕劳': ['科罗尔', '梅莱凯奥克', '艾拉伊', '恩切萨尔', '昂奥尔', '卡扬埃尔', '艾梅利克', '佩莱利乌', '安加尔', '松索罗尔', '哈托博海伊', '科罗尔', '梅莱凯奥克', '艾拉伊', '恩切萨尔', '昂奥尔', '卡扬埃尔', '艾梅利克', '佩莱利乌', '安加尔', '松索罗尔'],
            '瑙鲁': ['亚伦', '阿尼巴雷', '布阿达', '埃瓦', '伊朱', '梅嫩', '博', '阿内坦', '尼博克', '乌博', '亚伦', '阿尼巴雷', '布阿达', '埃瓦', '伊朱', '梅嫩', '博', '阿内坦', '尼博克', '乌博'],
            '基里巴斯': ['南塔拉瓦', '塔拉瓦', '布塔里塔里', '阿拜昂', '塔比特韦亚', '贝鲁', '马金', '马拉凯', '阿拜昂', '塔比特韦亚', '贝鲁', '马金', '马拉凯', '阿拜昂', '塔比特韦亚', '贝鲁', '马金', '马拉凯', '阿拜昂', '塔比特韦亚'],
            '图瓦卢': ['富纳富提', '瓦伊图普', '努库费陶', '努库莱莱', '努伊', '努伊塔奥', '努伊塔奥', '努伊塔奥', '努伊塔奥', '努伊塔奥', '努伊塔奥', '努伊塔奥', '努伊塔奥', '努伊塔奥', '努伊塔奥', '努伊塔奥', '努伊塔奥', '努伊塔奥', '努伊塔奥', '努伊塔奥']
        }
    }